<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>perlbook - Books about and related to Perl - Perldoc Browser</title>
    <link rel="search" href="https://perldoc.perl.org/opensearch.xml" type="application/opensearchdescription+xml" title="Perldoc Browser">
    <link rel="canonical" href="https://perldoc.perl.org/perlbook">
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css" integrity="sha384-JcKb8q3iqJ61gNV9KGb8thSsNjpSL0n8PARn9HuZOnIxN0hoP+VmmDGMN5t9UJ0Z" crossorigin="anonymous">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/10.5.0/styles/stackoverflow-light.min.css" integrity="sha512-cG1IdFxqipi3gqLmksLtuk13C+hBa57a6zpWxMeoY3Q9O6ooFxq50DayCdm0QrDgZjMUn23z/0PMZlgft7Yp5Q==" crossorigin="anonymous" />
    <style>
      body {
        background: #f4f4f5;
        color: #020202;
      }
      .navbar-dark {
        background-image: -webkit-linear-gradient(top, #005f85 0, #002e49 100%);
        background-image: -o-linear-gradient(top, #005f85 0, #002e49 100%);
        background-image: linear-gradient(to bottom, #005f85 0, #002e49 100%);
        filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff005f85', endColorstr='#ff002e49', GradientType=0);
        background-repeat: repeat-x;
      }
      .navbar-dark .navbar-nav .nav-link,
      .navbar-dark .navbar-nav .nav-link:focus { color: #fff }
      .navbar-dark .navbar-nav .nav-link:hover { color: #ffef68 }
      #wrapperlicious {
        margin: 0 auto;
        font: 0.9em 'Helvetica Neue', Helvetica, sans-serif;
        font-weight: normal;
        line-height: 1.5em;
        margin: 0;
        padding: 0;
      }
      #wrapperlicious h1 { font-size: 1.5em }
      #wrapperlicious h2 { font-size: 1.3em }
      #wrapperlicious h3 { font-size: 1.1em }
      #wrapperlicious h4 { font-size: 0.9em }
      #wrapperlicious h1, #wrapperlicious h2, #wrapperlicious h3,
      #wrapperlicious h4, #wrapperlicious dt {
        color: #020202;
        margin-top: 1em;
        margin-bottom: 1em;
        position: relative;
        font-weight: bold;
      }
      #wrapperlicious a { color: inherit; text-decoration: underline }
      #wrapperlicious #toc { text-decoration: none }
      #wrapperlicious a:hover { color: #2a2a2a }
      #wrapperlicious a img { border: 0 }
      #wrapperlicious :not(pre) > code {
        color: inherit;
        background-color: rgba(0, 0, 0, 0.04);
        border-radius: 3px;
        font: 0.9em Consolas, Menlo, Monaco, monospace;
        padding: 0.3em;
      }
      #wrapperlicious dd {
        margin: 0;
        margin-left: 2em;
      }
      #wrapperlicious dt {
        color: #2a2a2a;
        font-weight: bold;
        margin-left: 0.9em;
      }
      #wrapperlicious p {
        margin-bottom: 1em;
        margin-top: 1em;
      }
      #wrapperlicious li > p {
        margin-bottom: 0;
        margin-top: 0;
      }
      #wrapperlicious pre {
        border: 1px solid #c1c1c1;
        border-radius: 3px;
        font: 100% Consolas, Menlo, Monaco, monospace;
        margin-bottom: 1em;
        margin-top: 1em;
      }
      #wrapperlicious pre > code {
        display: block;
        background-color: #f6f6f6;
        font: 0.9em Consolas, Menlo, Monaco, monospace;
        line-height: 1.5em;
        text-align: left;
        white-space: pre;
        padding: 1em;
      }
      #wrapperlicious dl, #wrapperlicious ol, #wrapperlicious ul {
        margin-bottom: 1em;
        margin-top: 1em;
      }
      #wrapperlicious ul {
        list-style-type: square;
      }
      #wrapperlicious ul ul {
        margin-bottom: 0px;
        margin-top: 0px;
      }
      #footer {
        font-size: 0.8em;
        padding-top: 0.5em;
        text-align: center;
      }
      #more {
        display: inline;
        font-size: 0.8em;
      }
      #perldocdiv {
        background-color: #fff;
        border: 1px solid #c1c1c1;
        border-bottom-left-radius: 5px;
        border-bottom-right-radius: 5px;
        margin-left: auto;
        margin-right: auto;
        padding: 3em;
        padding-top: 1em;
        max-width: 960px;
      }
      #moduleversion { float: right }
      #wrapperlicious .leading-notice {
        font-style: italic;
        padding-left: 1em;
        margin-top: 1em;
        margin-bottom: 1em;
      }
      #wrapperlicious .permalink {
        display: none;
        left: -0.75em;
        position: absolute;
        padding-right: 0.25em;
        text-decoration: none;
      }
      #wrapperlicious h1:hover .permalink, #wrapperlicious h2:hover .permalink,
      #wrapperlicious h3:hover .permalink, #wrapperlicious h4:hover .permalink,
      #wrapperlicious dt:hover .permalink {
        display: block;
      }
    </style>
    <!-- Global site tag (gtag.js) - Google Analytics -->
    <script async src="https://www.googletagmanager.com/gtag/js?id=G-KVNWBNT5FB"></script>
    <script>
      window.dataLayer = window.dataLayer || [];
      function gtag(){dataLayer.push(arguments);}
      gtag('js', new Date());

      gtag('config', 'G-KVNWBNT5FB');
      gtag('config', 'UA-50555-3');
    </script>
  </head>
  <body>
    <nav class="navbar navbar-expand-md navbar-dark bg-dark justify-content-between">
  <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
    <span class="navbar-toggler-icon"></span>
  </button>
  <a class="navbar-brand" href="https://perldoc.perl.org/">Perldoc Browser</a>
  <div class="collapse navbar-collapse" id="navbarNav">
    <ul class="navbar-nav mr-auto">
      <li class="nav-item dropdown text-nowrap">
        <a class="nav-link dropdown-toggle" href="perlbook.html#" id="dropdownlink-stable" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">5.35.0</a>
        <div class="dropdown-menu" aria-labelledby="dropdownlink-stable">
          <a class="dropdown-item" href="https://perldoc.perl.org/perlbook">Latest</a>
          <div class="dropdown-divider"></div>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.38.2/perlbook">5.38.2</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.38.1/perlbook">5.38.1</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.38.0/perlbook">5.38.0</a>
          <div class="dropdown-divider"></div>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.36.3/perlbook">5.36.3</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.36.2/perlbook">5.36.2</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.36.1/perlbook">5.36.1</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.36.0/perlbook">5.36.0</a>
          <div class="dropdown-divider"></div>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.34.3/perlbook">5.34.3</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.34.2/perlbook">5.34.2</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.34.1/perlbook">5.34.1</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.34.0/perlbook">5.34.0</a>
          <div class="dropdown-divider"></div>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.32.1/perlbook">5.32.1</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.32.0/perlbook">5.32.0</a>
          <div class="dropdown-divider"></div>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.30.3/perlbook">5.30.3</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.30.2/perlbook">5.30.2</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.30.1/perlbook">5.30.1</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.30.0/perlbook">5.30.0</a>
          <div class="dropdown-divider"></div>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.28.3/perlbook">5.28.3</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.28.2/perlbook">5.28.2</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.28.1/perlbook">5.28.1</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.28.0/perlbook">5.28.0</a>
          <div class="dropdown-divider"></div>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.26.3/perlbook">5.26.3</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.26.2/perlbook">5.26.2</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.26.1/perlbook">5.26.1</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.26.0/perlbook">5.26.0</a>
          <div class="dropdown-divider"></div>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.24.4/perlbook">5.24.4</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.24.3/perlbook">5.24.3</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.24.2/perlbook">5.24.2</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.24.1/perlbook">5.24.1</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.24.0/perlbook">5.24.0</a>
          <div class="dropdown-divider"></div>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.22.4/perlbook">5.22.4</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.22.3/perlbook">5.22.3</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.22.2/perlbook">5.22.2</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.22.1/perlbook">5.22.1</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.22.0/perlbook">5.22.0</a>
          <div class="dropdown-divider"></div>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.20.3/perlbook">5.20.3</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.20.2/perlbook">5.20.2</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.20.1/perlbook">5.20.1</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.20.0/perlbook">5.20.0</a>
          <div class="dropdown-divider"></div>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.18.4/perlbook">5.18.4</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.18.3/perlbook">5.18.3</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.18.2/perlbook">5.18.2</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.18.1/perlbook">5.18.1</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.18.0/perlbook">5.18.0</a>
          <div class="dropdown-divider"></div>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.16.3/perlbook">5.16.3</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.16.2/perlbook">5.16.2</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.16.1/perlbook">5.16.1</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.16.0/perlbook">5.16.0</a>
          <div class="dropdown-divider"></div>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.14.4/perlbook">5.14.4</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.14.3/perlbook">5.14.3</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.14.2/perlbook">5.14.2</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.14.1/perlbook">5.14.1</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.14.0/perlbook">5.14.0</a>
          <div class="dropdown-divider"></div>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.12.5/perlbook">5.12.5</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.12.4/perlbook">5.12.4</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.12.3/perlbook">5.12.3</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.12.2/perlbook">5.12.2</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.12.1/perlbook">5.12.1</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.12.0/perlbook">5.12.0</a>
          <div class="dropdown-divider"></div>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.10.1/perlbook">5.10.1</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.10.0/perlbook">5.10.0</a>
          <div class="dropdown-divider"></div>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.8.9/perlbook">5.8.9</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.8.8/perlbook">5.8.8</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.8.7/perlbook">5.8.7</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.8.6/perlbook">5.8.6</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.8.5/perlbook">5.8.5</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.8.4/perlbook">5.8.4</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.8.3/perlbook">5.8.3</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.8.2/perlbook">5.8.2</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.8.1/perlbook">5.8.1</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.8.0/perlbook">5.8.0</a>
          <div class="dropdown-divider"></div>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.6.2/perlbook">5.6.2</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.6.1/perlbook">5.6.1</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.6.0/perlbook">5.6.0</a>
          <div class="dropdown-divider"></div>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.005_04/perlbook">5.005_04</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.005_03/perlbook">5.005_03</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.005_02/perlbook">5.005_02</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.005_01/perlbook">5.005_01</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.005/perlbook">5.005</a>
        </div>
      </li>
      <li class="nav-item dropdown text-nowrap">
        <a class="nav-link dropdown-toggle" href="perlbook.html#" id="dropdownlink-dev" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Dev</a>
        <div class="dropdown-menu" aria-labelledby="dropdownlink-dev">
          <a class="dropdown-item" href="https://perldoc.perl.org/blead/perlbook">blead</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.39.6/perlbook">5.39.6</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.39.5/perlbook">5.39.5</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.39.4/perlbook">5.39.4</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.39.3/perlbook">5.39.3</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.39.2/perlbook">5.39.2</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.39.1/perlbook">5.39.1</a>
          <div class="dropdown-divider"></div>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.38.0-RC2/perlbook">5.38.0-RC2</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.38.0-RC1/perlbook">5.38.0-RC1</a>
          <div class="dropdown-divider"></div>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.37.11/perlbook">5.37.11</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.37.10/perlbook">5.37.10</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.37.9/perlbook">5.37.9</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.37.8/perlbook">5.37.8</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.37.7/perlbook">5.37.7</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.37.6/perlbook">5.37.6</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.37.5/perlbook">5.37.5</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.37.4/perlbook">5.37.4</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.37.3/perlbook">5.37.3</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.37.2/perlbook">5.37.2</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.37.1/perlbook">5.37.1</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.37.0/perlbook">5.37.0</a>
          <div class="dropdown-divider"></div>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.35.11/perlbook">5.35.11</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.35.10/perlbook">5.35.10</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.35.9/perlbook">5.35.9</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.35.8/perlbook">5.35.8</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.35.7/perlbook">5.35.7</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.35.6/perlbook">5.35.6</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.35.5/perlbook">5.35.5</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.35.4/perlbook">5.35.4</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.35.3/perlbook">5.35.3</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.35.2/perlbook">5.35.2</a>
          <a class="dropdown-item" href="https://perldoc.perl.org/5.35.1/perlbook">5.35.1</a>
          <a class="dropdown-item active" href="perlbook.html">5.35.0</a>
        </div>
      </li>
      <li class="nav-item dropdown text-nowrap">
        <a class="nav-link dropdown-toggle" href="perlbook.html#" id="dropdownlink-nav" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Documentation</a>
        <div class="dropdown-menu" aria-labelledby="dropdownlink-nav">
          <a class="dropdown-item" href="perl.html">Perl</a>
          <a class="dropdown-item" href="perlintro.html">Intro</a>
          <a class="dropdown-item" href="perl.html#Tutorials">Tutorials</a>
          <a class="dropdown-item" href="perlfaq.html">FAQs</a>
          <a class="dropdown-item" href="perl.html#Reference-Manual">Reference</a>
          <div class="dropdown-divider"></div>
          <a class="dropdown-item" href="perlop.html">Operators</a>
          <a class="dropdown-item" href="functions.html">Functions</a>
          <a class="dropdown-item" href="variables.html">Variables</a>
          <a class="dropdown-item" href="modules.html">Modules</a>
          <a class="dropdown-item" href="perlutil.html">Utilities</a>
          <div class="dropdown-divider"></div>
          <a class="dropdown-item" href="perlcommunity.html">Community</a>
          <a class="dropdown-item" href="perlhist.html">History</a>
        </div>
      </li>
    </ul>
    <ul class="navbar-nav">
      <script>
        function set_expand (expand) {
          var perldocdiv = document.getElementById('perldocdiv');
          var width = window.getComputedStyle(perldocdiv).getPropertyValue('max-width');
          var expanded = (width == '' || width == 'none') ? true : false;
          if (expand === null) {
            expand = !expanded;
          }
          if ((expand && !expanded) || (!expand && expanded)) {
            perldocdiv.style.setProperty('max-width', expand ? 'none' : '960px');
            var button_classlist = document.getElementById('content-expand-button').classList;
            if (expand) {
              button_classlist.add('btn-light');
              button_classlist.remove('btn-outline-light');
            } else {
              button_classlist.add('btn-outline-light');
              button_classlist.remove('btn-light');
            }
          }
          return expand;
        }
        function toggle_expand () {
          var expand = set_expand(null);
          document.cookie = 'perldoc_expand=' + (expand ? 1 : 0) + '; path=/; expires=Tue, 19 Jan 2038 03:14:07 UTC';
        }
        function read_expand () {
          return document.cookie.split(';').some(function (item) { return item.indexOf('perldoc_expand=1') >= 0 });
        }
        if (document.readyState === 'loading') {
          document.addEventListener('DOMContentLoaded', function () {
            if (read_expand()) {
              set_expand(true);
            }
          });
        } else if (read_expand()) {
          set_expand(true);
        }
      </script>
      <button id="content-expand-button" type="button" class="btn btn-outline-light d-none d-lg-inline-block mr-2" onclick="toggle_expand()">Expand</button>
    <ul>
    <form class="form-inline" method="get" action="https://perldoc.perl.org/5.35.0/search">
      <input class="form-control mr-3" type="search" name="q" placeholder="Search" aria-label="Search">
    </form>
  </div>
</nav>

    <div id="wrapperlicious" class="container-fluid">
      <div id="perldocdiv">
        <div id="links">
          <a href="perlbook.html">perlbook</a>
          <div id="more">
            (<a href="perlbook.txt">source</a>,
            <a href="https://metacpan.org/pod/perlbook">CPAN</a>)
          </div>
        </div>
        <div class="leading-notice">
          You are viewing the version of this documentation from Perl 5.35.0.
            This is a development version of Perl.
        </div>
        <h1><a id="toc">CONTENTS</a></h1>
                  <ul>
              <li>
                <a class="text-decoration-none" href="perlbook.html#NAME">NAME</a>
              </li>
              <li>
                <a class="text-decoration-none" href="perlbook.html#DESCRIPTION">DESCRIPTION</a>
                            <ul>
              <li>
                <a class="text-decoration-none" href="perlbook.html#The-most-popular-books">The most popular books</a>
              </li>
              <li>
                <a class="text-decoration-none" href="perlbook.html#References">References</a>
              </li>
              <li>
                <a class="text-decoration-none" href="perlbook.html#Tutorials">Tutorials</a>
              </li>
              <li>
                <a class="text-decoration-none" href="perlbook.html#Task-Oriented">Task-Oriented</a>
              </li>
              <li>
                <a class="text-decoration-none" href="perlbook.html#Special-Topics">Special Topics</a>
              </li>
              <li>
                <a class="text-decoration-none" href="perlbook.html#Free-(as-in-beer)-books">Free (as in beer) books</a>
              </li>
              <li>
                <a class="text-decoration-none" href="perlbook.html#Other-interesting,-non-Perl-books">Other interesting, non-Perl books</a>
              </li>
              <li>
                <a class="text-decoration-none" href="perlbook.html#A-note-on-freshness">A note on freshness</a>
              </li>
              <li>
                <a class="text-decoration-none" href="perlbook.html#Get-your-book-listed">Get your book listed</a>
              </li>
          </ul>

              </li>
          </ul>

      <h1 id="NAME"><a class="permalink" href="perlbook.html#NAME">#</a>NAME</h1>

<p>perlbook - Books about and related to Perl</p>

<h1 id="DESCRIPTION"><a class="permalink" href="perlbook.html#DESCRIPTION">#</a>DESCRIPTION</h1>

<p>There are many books on Perl and Perl-related. A few of these are good, some are OK, but many aren&#39;t worth your money. There is a list of these books, some with extensive reviews, at <a href="https://www.perl.org/books/library.html">https://www.perl.org/books/library.html</a> . We list some of the books here, and while listing a book implies our endorsement, don&#39;t think that not including a book means anything.</p>

<p>Most of these books are available online through Safari Books Online ( <a href="http://safaribooksonline.com/">http://safaribooksonline.com/</a> ).</p>

<h2 id="The-most-popular-books"><a class="permalink" href="perlbook.html#The-most-popular-books">#</a><a id="The"></a>The most popular books</h2>

<p>The major reference book on Perl, written by the creator of Perl, is <i>Programming Perl</i>:</p>

<dl>

<dt id="Programming-Perl-(the-&quot;Camel-Book&quot;):"><a class="permalink" href="perlbook.html#Programming-Perl-(the-%22Camel-Book%22):">#</a><a id="Programming"></a><a id="Programming-Perl-the-Camel-Book"></a><i>Programming Perl</i> (the &quot;Camel Book&quot;):</dt>
<dd>

<pre><code class="plaintext">by Tom Christiansen, brian d foy, Larry Wall with Jon Orwant
ISBN 978-0-596-00492-7 [4th edition February 2012]
ISBN 978-1-4493-9890-3 [ebook]
https://oreilly.com/catalog/9780596004927</code></pre>

</dd>
</dl>

<p>The Ram is a cookbook with hundreds of examples of using Perl to accomplish specific tasks:</p>

<dl>

<dt id="The-Perl-Cookbook-(the-&quot;Ram-Book&quot;):"><a class="permalink" href="perlbook.html#The-Perl-Cookbook-(the-%22Ram-Book%22):">#</a><a id="The1"></a><a id="The-Perl-Cookbook-the-Ram-Book"></a><i>The Perl Cookbook</i> (the &quot;Ram Book&quot;):</dt>
<dd>

<pre><code class="plaintext">by Tom Christiansen and Nathan Torkington,
with Foreword by Larry Wall
ISBN 978-0-596-00313-5 [2nd Edition August 2003]
ISBN 978-0-596-15888-0 [ebook]
https://oreilly.com/catalog/9780596003135/</code></pre>

</dd>
</dl>

<p>If you want to learn the basics of Perl, you might start with the Llama book, which assumes that you already know a little about programming:</p>

<dl>

<dt id="Learning-Perl-(the-&quot;Llama-Book&quot;)"><a class="permalink" href="perlbook.html#Learning-Perl-(the-%22Llama-Book%22)">#</a><a id="Learning"></a><a id="Learning-Perl-the-Llama-Book"></a><i>Learning Perl</i> (the &quot;Llama Book&quot;)</dt>
<dd>

<pre><code class="plaintext">by Randal L. Schwartz, Tom Phoenix, and brian d foy
ISBN 978-1-4493-0358-7 [6th edition June 2011]
ISBN 978-1-4493-0458-4 [ebook]
https://www.learning-perl.com/</code></pre>

</dd>
</dl>

<p>The tutorial started in the Llama continues in the Alpaca, which introduces the intermediate features of references, data structures, object-oriented programming, and modules:</p>

<dl>

<dt id="Intermediate-Perl-(the-&quot;Alpaca-Book&quot;)"><a class="permalink" href="perlbook.html#Intermediate-Perl-(the-%22Alpaca-Book%22)">#</a><a id="Intermediate"></a><a id="Intermediate-Perl-the-Alpaca-Book"></a><i>Intermediate Perl</i> (the &quot;Alpaca Book&quot;)</dt>
<dd>

<pre><code class="plaintext">by Randal L. Schwartz and brian d foy, with Tom Phoenix
        foreword by Damian Conway
ISBN 978-1-4493-9309-0 [2nd edition August 2012]
ISBN 978-1-4493-0459-1 [ebook]
https://www.intermediateperl.com/</code></pre>

</dd>
</dl>

<h2 id="References"><a class="permalink" href="perlbook.html#References">#</a>References</h2>

<p>You might want to keep these desktop references close by your keyboard:</p>

<dl>

<dt id="Perl-5-Pocket-Reference"><a class="permalink" href="perlbook.html#Perl-5-Pocket-Reference">#</a><a id="Perl"></a><i>Perl 5 Pocket Reference</i></dt>
<dd>

<pre><code class="plaintext">by Johan Vromans
ISBN 978-1-4493-0370-9 [5th edition July 2011]
ISBN 978-1-4493-0813-1 [ebook]
https://oreilly.com/catalog/0636920018476/</code></pre>

</dd>
<dt id="Perl-Debugger-Pocket-Reference"><a class="permalink" href="perlbook.html#Perl-Debugger-Pocket-Reference">#</a><a id="Perl1"></a><i>Perl Debugger Pocket Reference</i></dt>
<dd>

<pre><code class="plaintext">by Richard Foley
ISBN 978-0-596-00503-0 [1st edition January 2004]
ISBN 978-0-596-55625-9 [ebook]
https://oreilly.com/catalog/9780596005030/</code></pre>

</dd>
<dt id="Regular-Expression-Pocket-Reference"><a class="permalink" href="perlbook.html#Regular-Expression-Pocket-Reference">#</a><a id="Regular"></a><i>Regular Expression Pocket Reference</i></dt>
<dd>

<pre><code class="plaintext">by Tony Stubblebine
ISBN 978-0-596-51427-3 [2nd edition July 2007]
ISBN 978-0-596-55782-9 [ebook]
https://oreilly.com/catalog/9780596514273/</code></pre>

</dd>
</dl>

<h2 id="Tutorials"><a class="permalink" href="perlbook.html#Tutorials">#</a>Tutorials</h2>

<dl>

<dt id="Beginning-Perl"><a class="permalink" href="perlbook.html#Beginning-Perl">#</a><a id="Beginning"></a><i>Beginning Perl</i></dt>
<dd>

<p>(There are 2 books with this title)</p>

<pre><code class="plaintext">by Curtis &#39;Ovid&#39; Poe
ISBN 978-1-118-01384-7
http://www.wrox.com/WileyCDA/WroxTitle/productCd-1118013840.html

by James Lee
ISBN 1-59059-391-X [3rd edition April 2010 &amp; ebook]
https://www.apress.com/9781430227939</code></pre>

</dd>
<dt id="Learning-Perl-(the-&quot;Llama-Book&quot;)1"><a class="permalink" href="perlbook.html#Learning-Perl-(the-%22Llama-Book%22)1">#</a><a id="Learning1"></a><a id="Learning-Perl-the-Llama-Book1"></a><i>Learning Perl</i> (the &quot;Llama Book&quot;)</dt>
<dd>

<pre><code class="plaintext">by Randal L. Schwartz, Tom Phoenix, and brian d foy
ISBN 978-1-4493-0358-7 [6th edition June 2011]
ISBN 978-1-4493-0458-4 [ebook]
https://www.learning-perl.com/</code></pre>

</dd>
<dt id="Intermediate-Perl-(the-&quot;Alpaca-Book&quot;)1"><a class="permalink" href="perlbook.html#Intermediate-Perl-(the-%22Alpaca-Book%22)1">#</a><a id="Intermediate1"></a><a id="Intermediate-Perl-the-Alpaca-Book1"></a><i>Intermediate Perl</i> (the &quot;Alpaca Book&quot;)</dt>
<dd>

<pre><code class="plaintext">by Randal L. Schwartz and brian d foy, with Tom Phoenix
        foreword by Damian Conway
ISBN 978-1-4493-9309-0 [2nd edition August 2012]
ISBN 978-1-4493-0459-1 [ebook]
https://www.intermediateperl.com/</code></pre>

</dd>
<dt id="Mastering-Perl"><a class="permalink" href="perlbook.html#Mastering-Perl">#</a><a id="Mastering"></a><i>Mastering Perl</i></dt>
<dd>

<pre><code class="plaintext">   by brian d foy
ISBN 9978-1-4493-9311-3 [2st edition January 2014]
ISBN 978-1-4493-6487-8 [ebook]
https://www.masteringperl.org/</code></pre>

</dd>
<dt id="Effective-Perl-Programming"><a class="permalink" href="perlbook.html#Effective-Perl-Programming">#</a><a id="Effective"></a><i>Effective Perl Programming</i></dt>
<dd>

<pre><code class="plaintext">by Joseph N. Hall, Joshua A. McAdams, brian d foy
ISBN 0-321-49694-9 [2nd edition 2010]
https://www.effectiveperlprogramming.com/</code></pre>

</dd>
</dl>

<h2 id="Task-Oriented"><a class="permalink" href="perlbook.html#Task-Oriented">#</a><a id="Task"></a>Task-Oriented</h2>

<dl>

<dt id="Writing-Perl-Modules-for-CPAN"><a class="permalink" href="perlbook.html#Writing-Perl-Modules-for-CPAN">#</a><a id="Writing"></a><i>Writing Perl Modules for CPAN</i></dt>
<dd>

<pre><code class="plaintext">by Sam Tregar
ISBN 1-59059-018-X [1st edition August 2002 &amp; ebook]
https://www.apress.com/9781590590188</code></pre>

</dd>
<dt id="The-Perl-Cookbook"><a class="permalink" href="perlbook.html#The-Perl-Cookbook">#</a><a id="The2"></a><i>The Perl Cookbook</i></dt>
<dd>

<pre><code class="plaintext">by Tom Christiansen and Nathan Torkington,
    with Foreword by Larry Wall
ISBN 978-0-596-00313-5 [2nd Edition August 2003]
ISBN 978-0-596-15888-0 [ebook]
https://oreilly.com/catalog/9780596003135/</code></pre>

</dd>
<dt id="Automating-System-Administration-with-Perl"><a class="permalink" href="perlbook.html#Automating-System-Administration-with-Perl">#</a><a id="Automating"></a><i>Automating System Administration with Perl</i></dt>
<dd>

<pre><code class="plaintext">by David N. Blank-Edelman
ISBN 978-0-596-00639-6 [2nd edition May 2009]
ISBN 978-0-596-80251-6 [ebook]
https://oreilly.com/catalog/9780596006396</code></pre>

</dd>
<dt id="Real-World-SQL-Server-Administration-with-Perl"><a class="permalink" href="perlbook.html#Real-World-SQL-Server-Administration-with-Perl">#</a><a id="Real"></a><i>Real World SQL Server Administration with Perl</i></dt>
<dd>

<pre><code class="plaintext">by Linchi Shea
ISBN 1-59059-097-X [1st edition July 2003 &amp; ebook]
https://www.apress.com/9781590590973</code></pre>

</dd>
</dl>

<h2 id="Special-Topics"><a class="permalink" href="perlbook.html#Special-Topics">#</a><a id="Special"></a>Special Topics</h2>

<dl>

<dt id="Regular-Expressions-Cookbook"><a class="permalink" href="perlbook.html#Regular-Expressions-Cookbook">#</a><a id="Regular1"></a><i>Regular Expressions Cookbook</i></dt>
<dd>

<pre><code class="plaintext">by Jan Goyvaerts and Steven Levithan
ISBN 978-1-4493-1943-4 [2nd edition August 2012]
ISBN 978-1-4493-2747-7 [ebook]
https://shop.oreilly.com/product/0636920023630.do</code></pre>

</dd>
<dt id="Programming-the-Perl-DBI"><a class="permalink" href="perlbook.html#Programming-the-Perl-DBI">#</a><a id="Programming1"></a><i>Programming the Perl DBI</i></dt>
<dd>

<pre><code class="plaintext">by Tim Bunce and Alligator Descartes
ISBN 978-1-56592-699-8 [February 2000]
ISBN 978-1-4493-8670-2 [ebook]
https://oreilly.com/catalog/9781565926998</code></pre>

</dd>
<dt id="Perl-Best-Practices"><a class="permalink" href="perlbook.html#Perl-Best-Practices">#</a><a id="Perl2"></a><i>Perl Best Practices</i></dt>
<dd>

<pre><code class="plaintext">by Damian Conway
ISBN 978-0-596-00173-5 [1st edition July 2005]
ISBN 978-0-596-15900-9 [ebook]
https://oreilly.com/catalog/9780596001735</code></pre>

</dd>
<dt id="Higher-Order-Perl"><a class="permalink" href="perlbook.html#Higher-Order-Perl">#</a><a id="Higher"></a><i>Higher-Order Perl</i></dt>
<dd>

<pre><code class="plaintext">by Mark-Jason Dominus
ISBN 1-55860-701-3 [1st edition March 2005]
free ebook https://hop.perl.plover.com/book/
https://hop.perl.plover.com/</code></pre>

</dd>
<dt id="Mastering-Regular-Expressions"><a class="permalink" href="perlbook.html#Mastering-Regular-Expressions">#</a><a id="Mastering1"></a><i>Mastering Regular Expressions</i></dt>
<dd>

<pre><code class="plaintext">by Jeffrey E. F. Friedl
ISBN 978-0-596-52812-6 [3rd edition August 2006]
ISBN 978-0-596-55899-4 [ebook]
https://oreilly.com/catalog/9780596528126</code></pre>

</dd>
<dt id="Network-Programming-with-Perl"><a class="permalink" href="perlbook.html#Network-Programming-with-Perl">#</a><a id="Network"></a><i>Network Programming with Perl</i></dt>
<dd>

<pre><code class="plaintext">by Lincoln Stein
ISBN 0-201-61571-1 [1st edition 2001]
https://www.pearsonhighered.com/educator/product/Network-Programming-with-Perl/9780201615715.page</code></pre>

</dd>
<dt id="Perl-Template-Toolkit"><a class="permalink" href="perlbook.html#Perl-Template-Toolkit">#</a><a id="Perl3"></a><i>Perl Template Toolkit</i></dt>
<dd>

<pre><code class="plaintext">by Darren Chamberlain, Dave Cross, and Andy Wardley
ISBN 978-0-596-00476-7 [December 2003]
ISBN 978-1-4493-8647-4 [ebook]
https://oreilly.com/catalog/9780596004767</code></pre>

</dd>
<dt id="Object-Oriented-Perl"><a class="permalink" href="perlbook.html#Object-Oriented-Perl">#</a><a id="Object"></a><i>Object Oriented Perl</i></dt>
<dd>

<pre><code class="plaintext">by Damian Conway
    with foreword by Randal L. Schwartz
ISBN 1-884777-79-1 [1st edition August 1999 &amp; ebook]
https://www.manning.com/conway/</code></pre>

</dd>
<dt id="Data-Munging-with-Perl"><a class="permalink" href="perlbook.html#Data-Munging-with-Perl">#</a><a id="Data"></a><i>Data Munging with Perl</i></dt>
<dd>

<pre><code class="plaintext">by Dave Cross
ISBN 1-930110-00-6 [1st edition 2001 &amp; ebook]
https://www.manning.com/cross</code></pre>

</dd>
<dt id="Mastering-Perl/Tk"><a class="permalink" href="perlbook.html#Mastering-Perl/Tk">#</a><a id="Mastering2"></a><a id="Mastering-Perl-Tk"></a><i>Mastering Perl/Tk</i></dt>
<dd>

<pre><code class="plaintext">by Steve Lidie and Nancy Walsh
ISBN 978-1-56592-716-2 [1st edition January 2002]
ISBN 978-0-596-10344-6 [ebook]
https://oreilly.com/catalog/9781565927162</code></pre>

</dd>
<dt id="Extending-and-Embedding-Perl"><a class="permalink" href="perlbook.html#Extending-and-Embedding-Perl">#</a><a id="Extending"></a><i>Extending and Embedding Perl</i></dt>
<dd>

<pre><code class="plaintext">by Tim Jenness and Simon Cozens
ISBN 1-930110-82-0 [1st edition August 2002 &amp; ebook]
https://www.manning.com/jenness</code></pre>

</dd>
<dt id="Pro-Perl-Debugging"><a class="permalink" href="perlbook.html#Pro-Perl-Debugging">#</a><a id="Pro"></a><i>Pro Perl Debugging</i></dt>
<dd>

<pre><code class="plaintext">by Richard Foley with Andy Lester
ISBN 1-59059-454-1 [1st edition July 2005 &amp; ebook]
https://www.apress.com/9781590594544</code></pre>

</dd>
</dl>

<h2 id="Free-(as-in-beer)-books"><a class="permalink" href="perlbook.html#Free-(as-in-beer)-books">#</a><a id="Free"></a><a id="Free-as-in-beer-books"></a>Free (as in beer) books</h2>

<p>Some of these books are available as free downloads.</p>

<p><i>Higher-Order Perl</i>: <a href="https://hop.perl.plover.com/">https://hop.perl.plover.com/</a></p>

<p><i>Modern Perl</i>: <a href="http://onyxneon.com/books/modern_perl/">http://onyxneon.com/books/modern_perl/</a></p>

<h2 id="Other-interesting,-non-Perl-books"><a class="permalink" href="perlbook.html#Other-interesting,-non-Perl-books">#</a><a id="Other"></a><a id="Other-interesting-non-Perl-books"></a>Other interesting, non-Perl books</h2>

<p>You might notice several familiar Perl concepts in this collection of ACM columns from Jon Bentley. The similarity to the title of the major Perl book (which came later) is not completely accidental:</p>

<dl>

<dt id="Programming-Pearls"><a class="permalink" href="perlbook.html#Programming-Pearls">#</a><a id="Programming2"></a><i>Programming Pearls</i></dt>
<dd>

<pre><code class="plaintext">by Jon Bentley
ISBN 978-0-201-65788-3 [2 edition, October 1999]</code></pre>

</dd>
<dt id="More-Programming-Pearls"><a class="permalink" href="perlbook.html#More-Programming-Pearls">#</a><a id="More"></a><i>More Programming Pearls</i></dt>
<dd>

<pre><code class="plaintext">by Jon Bentley
ISBN 0-201-11889-0 [January 1988]</code></pre>

</dd>
</dl>

<h2 id="A-note-on-freshness"><a class="permalink" href="perlbook.html#A-note-on-freshness">#</a><a id="A"></a>A note on freshness</h2>

<p>Each version of Perl comes with the documentation that was current at the time of release. This poses a problem for content such as book lists. There are probably very nice books published after this list was included in your Perl release, and you can check the latest released version at <a href="https://perldoc.perl.org/perlbook.html">https://perldoc.perl.org/perlbook.html</a> .</p>

<p>Some of the books we&#39;ve listed appear almost ancient in internet scale, but we&#39;ve included those books because they still describe the current way of doing things. Not everything in Perl changes every day. Many of the beginner-level books, too, go over basic features and techniques that are still valid today. In general though, we try to limit this list to books published in the past five years.</p>

<h2 id="Get-your-book-listed"><a class="permalink" href="perlbook.html#Get-your-book-listed">#</a><a id="Get"></a>Get your book listed</h2>

<p>If your Perl book isn&#39;t listed and you think it should be, let us know. <a href="mailto:perl5-porters@perl.org">mailto:perl5-porters@perl.org</a></p>


      </div>
      <div id="footer">
        <p>Perldoc Browser is maintained by Dan Book (<a href="https://metacpan.org/author/DBOOK">DBOOK</a>). Please contact him via the <a href="https://github.com/Grinnz/perldoc-browser/issues">GitHub issue tracker</a> or <a href="mailto:dbook@cpan.org">email</a> regarding any issues with the site itself, search, or rendering of documentation.</p>

<p>The Perl documentation is maintained by the Perl 5 Porters in the development of Perl. Please contact them via the <a href="https://github.com/Perl/perl5/issues">Perl issue tracker</a>, the <a href="https://lists.perl.org/list/perl5-porters.html">mailing list</a>, or <a href="https://kiwiirc.com/client/irc.perl.org/p5p">IRC</a> to report any issues with the contents or format of the documentation.</p>


      </div>
    </div>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.slim.min.js" integrity="sha512-/DXTXr6nQodMUiq+IUJYCt2PPOUjrHJ9wFrqpJ3XkgPNOZVfMok7cRw6CSxyCQxXn6ozlESsSh1/sMCTF1rL/g==" crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.1/umd/popper.min.js" integrity="sha512-ubuT8Z88WxezgSqf3RLuNi5lmjstiJcyezx34yIU2gAHonIi27Na7atqzUZCOoY4CExaoFumzOsFQ2Ch+I/HCw==" crossorigin="anonymous"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js" integrity="sha384-B4gt1jrGC7Jh4AgTPSdUtOBvfO8shuf57BaghqFfPlYxofvL8/KUEfYiJOMMV+rV" crossorigin="anonymous"></script>
    <script src="../highlight.pack.js"></script>
    <script>hljs.highlightAll();</script>
  </body>
</html>
